/**
 * 
 */
package com.mc.guava;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;

import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;

/**
 * 字符串操作
 * 
 * @author w.weizhen
 *
 */
public class GuavaString {

    /**
     * @param args
     */
    public static void main(String[] args) {
        
        joiner();//joiner 连接器
        
        
    }
    
    /**
     * joiner 连接器
     */
    private static void joiner()
    {
        //传入多参数
        List<String> lists = Lists.newArrayList("a","b","g",null,"","8","9");
        //传入数组
        //List<String> lists = Lists.newArrayList(new String[]{"22", "22"});
        //传入集合
        //List<String> lists = Lists.newArrayList(Lists.newArrayList());
        //使用条件：你确定你的容器会装多少个，不确定就用一般形式的
        //说明：这个容器超过10个还是会自动扩容的。不用担心容量不够用。默认是分配一个容量为10的数组，不够将扩容
        //整个来说的优点有：节约内存，节约时间，节约性能。代码质量提高。
        //List<String> lists = Lists.newArrayListWithExpectedSize(10);
        //这个方法就是直接返回一个10的数组。
        //List<String> lists = Lists.newArrayListWithCapacity(10);
        
        //List<String> lists = Arrays.asList("a","b","g","8","9");
        
        // 将list用，连接转成字符串
        //连接的时候list里面含有null值，会报空指针
        //System.out.println(Joiner.on(",").join(lists));
        
        //joiner skipNulls()连接跳过null元素,不能跳过空内容。
        //System.out.println(Joiner.on(",").skipNulls().join(lists));
        
        // 1.使用Apache Commons的StringUtils
        //System.out.println(StringUtils.join(lists.toArray(), ","));
        
        //joiner useForNull(final String value)用value替换null元素值
        //System.out.println(Joiner.on(",").useForNull("哈哈").join(lists));
        
        
        Map<Integer, String> maps = Maps.newHashMap();
        maps.put(1, "哈哈");
        maps.put(2, "压压");
        String result = Joiner.on(",").withKeyValueSeparator(":").join(maps);
        System.out.println(result);
        System.out.println(maps);
        
        
        
        
        
        
        
    }
    
    
    
    
    
    
}